﻿'use strict';

var express = require('express');
var router = express.Router();
// var uploaderController = require('../controllers/uploader.controller');

var upload = require('multer')({ dest: 'uploads/' });
var path = require('path');
var fs = require('fs');
var xlsx = require('node-xlsx');
var _= require('underscore');
// 上传excl
router.post('/uploader/excl', upload.single('excl'), function(req, res){
	
	// console.log(req.file);  // 上传的文件信息

    if(undefined == req.file){
        res.json(['failed', {msg:"没有选择要上传的文件！"}]);
        return -1;
    }

    var des_file = "./uploads/" + req.file.originalname;
    fs.readFile( req.file.path, function (err, data) {
        fs.writeFile(des_file, data, function (err) {
            if( err ){
                console.log( err );
                res.json({msg:err});
            }else{
                var response = {
                    msg:'File uploaded successfully', 
                    filename:req.file.originalname,
                };
                // 删除缓存文件
                fs.unlinkSync(req.file.path);
                // 处理excl文件数据
                var obj = xlsx.parse(des_file);
                var excelObj=obj[0].data;
                console.log(excelObj[0]);
                var arr58=["姓名","性别","年龄","简历类型","应聘职位","期望薪资","现职位","工作经验","手机","电子邮件","现居住地","现工作单位","最高学历","学校名称","专业","下载日期","反馈状态"];
                var arr58_2=[ '姓名','性别','年龄','简历类型','应聘职位','期望薪资','现职位','工作经验','手机','电子邮件','现居住地','现工作单位','最高学历','学校名称','专业','应聘日期','反馈状态' ];
		        var arr58_3=['姓名','性别','年龄','简历类型','应聘职位','期望薪资','现职位','工作经验','通话密号/手机号','失效时间','电子邮件','现居住地','现工作单位','最高学历','学校名称','专业','下载时间','反馈状态'];
                var arrganji=["应聘职位标题","求职职位","姓名","性别","年龄","学历","期望工作地点","期望薪资","工作年限","手机","电子邮件","投递/下载时间","自我描述"];
                var arrganji2=[ '求职职位','姓名','性别','年龄','学历','简历标题','期望工作地点','期望薪资','工作年限','手机','电子邮件','投递/下载时间','自我描述' ];
                var huibo=[ ,'简历编号','姓名','年龄','性别','学历','工作年限','现居地','应聘职位','最近工作','所在公司','联系方式','备注' ];
                var zhilian=[ '姓名','标签名称','应聘职位','简历名称','性别','出生日期','工作年限','移动电话','电子邮件','目前居住地','通讯地址','户口','现在单位','学校名称','专业名称','最高学历','期望月薪(税前)','投递(收藏)时间' ];
				var baixing=['投递时间','投递职位','姓名','性别','年龄','联系方式','地区','求职意向','学历','工作年限','工作经历','教育经历','自我介绍'];
				var dajiewang=['姓名','应聘/适合职位','应聘/适合部门','性别','出生日期','工作经验','手机','邮箱','目前状态','求职类型','期望职业','期望行业','期望城市','期望月薪','自我描述','现在单位','现在职位','最高学历','学校名称','专业名称','现居地','户口地','投递时间'];
				var job51=[ '姓名','匹配度','简历编号','应聘职位','应聘公司','发布城市','应聘日期','性别','出生日期','目前居住地','户口/国籍','工作年限','学历/学位','毕业学校','专业','联系电话','电子邮件','地址','邮编','最近一家公司','最近一个职位','目前年收入','期望薪资','求职状态' ]
                var jobdata=[],temp;
                if(_.isEqual(excelObj[0], arr58)){
                    // console.log("58的简历");
                    for(var i=1;i<excelObj.length;i++){
                        temp={};
                        temp['name']=excelObj[i][0];
                        temp['sex']=excelObj[i][1]=="男"?1:0;
                        temp['age']=excelObj[i][2];
                        // 应聘职位
                        temp['job_objective']=excelObj[i][4];
                        // 期望薪资
                        temp['expect_salary']=excelObj[i][5];
                        // 工作经验
                        temp['work_experience']=excelObj[i][7];
                        // 电话号码
                        temp['phone']=excelObj[i][8];
                        // 邮箱
                        temp['email']=excelObj[i][9];
                        // 现居住地
                        temp['current_address']=excelObj[i][10];
                        // 最高学历
                        temp['education']=excelObj[i][12];
                        // 学校
                        temp['school']=excelObj[i][13];
                        // 专业
                        temp['major']=excelObj[i][14];
                        if(temp['name']!="" && temp['name']){
                            jobdata.push(temp);
                        }
                    }
                }else{
                    if(_.isEqual(excelObj[0], arrganji)){
                        // console.log("赶集的简历");
                        for(var i=1;i<excelObj.length;i++){
                            temp={};
                            // 应聘职位
                            temp['job_objective']=excelObj[i][1];
                            temp['name']=excelObj[i][2];
                            temp['sex']=excelObj[i][3]=="男"?1:0;
                            temp['age']=excelObj[i][4];
                            // 最高学历
                            temp['education']=excelObj[i][5];
                            // 期望工作地点
                            temp['expect_work_place']=excelObj[i][6];
                            // 期望薪资
                            temp['expect_salary']=excelObj[i][7];
                            // 工作经验
                            temp['work_experience']=excelObj[i][8];
                            // 电话号码
                            temp['phone']=excelObj[i][9];
                            // 邮箱
                            temp['email']=excelObj[i][10];
                            // 自我描述
                            temp['self_description']=excelObj[i][12];

                            if(temp['name']!=""&& temp['name']){
                                jobdata.push(temp);
                            }
                        }
                    }else{
                        if(_.isEqual(excelObj[0], arr58_2)){
                            for(var i=1;i<excelObj.length;i++){
                                temp={};
                                temp['name']=excelObj[i][0];
                                temp['sex']=excelObj[i][1]=="男"?1:0;
                                temp['age']=excelObj[i][2];
                                // 应聘职位
                                temp['job_objective']=excelObj[i][4];
                                // 期望薪资
                                temp['expect_salary']=excelObj[i][5];
                                // 工作经验
                                temp['work_experience']=excelObj[i][7];
                                // 电话号码
                                temp['phone']=excelObj[i][8];
                                // 邮箱
                                temp['email']=excelObj[i][9];
                                // 现居住地
                                temp['current_address']=excelObj[i][10];
                                // 最高学历
                                temp['education']=excelObj[i][12];
                                // 学校
                                temp['school']=excelObj[i][13];
                                // 专业
                                temp['major']=excelObj[i][14];
                                if(temp['name']!="" && temp['name']){
                                    jobdata.push(temp);
                                }
                            }
                        }else{
                            if(_.isEqual(excelObj[0], arrganji2)){
                                for(var i=1;i<excelObj.length;i++){
                                    temp={};
                                    temp['job_objective']=excelObj[i][0];
                                    temp['name']=excelObj[i][1];
                                    temp['sex']=excelObj[i][2]=="男"?1:0;
                                    temp['age']=excelObj[i][3];
                                    // 期望薪资
                                    temp['expect_salary']=excelObj[i][7];
                                    // 期望工作地点
                                    temp['expect_work_place']=excelObj[i][6];
                                    // 工作经验
                                    temp['work_experience']=excelObj[i][8];
                                    // 电话号码
                                    temp['phone']=excelObj[i][9];
                                    // 邮箱
                                    temp['email']=excelObj[i][10];
                                    // 最高学历
                                    temp['education']=excelObj[i][4];
                                    // 自我描述
                                    temp['self_description']=excelObj[i][12];
                                    if(temp['name']!="" && temp['name']){
                                        jobdata.push(temp);
                                    }
                                }
                            }else{
                                if(_.isEqual(excelObj[0], huibo)){
                                    for(var i=1;i<excelObj.length;i++){
                                        temp={};
                                        temp['job_objective']=excelObj[i][8];
                                        temp['name']=excelObj[i][2];
                                        temp['sex']=excelObj[i][4]=="男"?1:0;
                                        temp['age']=excelObj[i][3];
                                        // 工作经验
                                        temp['work_experience']=excelObj[i][9];

                                        // 电话号码
                                        temp['phone']=excelObj[i][11];
                                        // 最高学历
                                        temp['education']=excelObj[i][5];
                                        // 现居住地
                                        temp['current_address']=excelObj[i][7];
                                        if(temp['name']!="" && temp['name']){
                                            jobdata.push(temp);
                                        }
                                    }
                                }else{
                                    if(_.isEqual(excelObj[0], zhilian)){
                                        for(var i=1;i<excelObj.length;i++){
                                            temp={};
                                            temp['name']=excelObj[i][0];
                                            // 应聘职位
                                            temp['job_objective']=excelObj[i][2];
                                            temp['sex']=excelObj[i][4];
                                            temp['birth_date']=excelObj[i][5];
                                            temp['work_experience']=excelObj[i][6];
                                            temp['phone']=excelObj[i][7];
                                            temp['email']=excelObj[i][8];
                                            temp['current_address']=excelObj[i][9];
                                            temp['school']=excelObj[i][13];
                                            temp['major']=excelObj[i][14];
                                            temp['education']=excelObj[i][15];
                                            temp['expect_salary']=excelObj[i][16];
                                            if(temp['name']!="" && temp['name']){
                                                jobdata.push(temp);
                                            }
                                        }
                                    }else{
                                        if(_.isEqual(excelObj[0], arr58_3)){
                                            // console.log("58的简历");
                                            for(var i=1;i<excelObj.length;i++){
                                                temp={};
                                                temp['name']=excelObj[i][0];
                                                temp['sex']=excelObj[i][1]=="男"?1:0;
                                                temp['age']=excelObj[i][2];
                                                // 应聘职位
                                                temp['job_objective']=excelObj[i][4];
                                                // 期望薪资
                                                temp['expect_salary']=excelObj[i][5];
                                                // 工作经验
                                                temp['work_experience']=excelObj[i][7];
                                                // 电话号码
                                                temp['phone']=excelObj[i][8];
                                                // 邮箱
                                                temp['email']=excelObj[i][10];
                                                // 现居住地
                                                temp['current_address']=excelObj[i][11];
                                                // 最高学历
                                                temp['education']=excelObj[i][13];
                                                // 学校
                                                temp['school']=excelObj[i][14];
                                                // 专业
                                                temp['major']=excelObj[i][15];
                                                if(temp['name']!="" && temp['name']){
                                                    jobdata.push(temp);
                                                }
                                            }
                                        }else{
											if(_.isEqual(excelObj[0], baixing)){
												for(var i=1;i<excelObj.length;i++){
													temp={};
													temp['name']=excelObj[i][2];
													temp['sex']=excelObj[i][3]=="男"?1:0;
													temp['age']=excelObj[i][4];
													// 应聘职位
													temp['job_objective']=excelObj[i][1];
													// 工作经验
													temp['work_experience']=excelObj[i][9];
													// 电话号码
													temp['phone']=excelObj[i][5];
													// 现居住地
													temp['current_address']=excelObj[i][6];
													// 最高学历
													temp['education']=excelObj[i][8];
													// 自我描述
													temp['self_description']=excelObj[i][12];
													// 教育经历
													temp['education_experience']=excelObj[i][11];
													if(temp['name']!="" && temp['name']){
														jobdata.push(temp);
													}
												}
											}else{
												if(_.isEqual(excelObj[0], dajiewang)){
													for(var i=1;i<excelObj.length;i++){
														temp={};
														temp['name']=excelObj[i][0];
														// 应聘职位
														temp['job_objective']=excelObj[i][1];
														temp['sex']=excelObj[i][3]=="男"?1:0;
														// 工作经验
														temp['work_experience']=excelObj[i][5];
														// 电话号码
														temp['phone']=excelObj[i][6];
														// 邮箱
														temp['email']=excelObj[i][7];
														// 出生年月
														temp['birth_date']=excelObj[i][4];
														// 现居住地
														temp['current_address']=excelObj[i][20];
														// 最高学历
														temp['education']=excelObj[i][17];
														// 期望薪资
														temp['expect_salary']=excelObj[i][13];
														// 自我描述
														temp['self_description']=excelObj[i][14];
														// 专业
														temp['major']=excelObj[i][19];
														if(temp['name']!="" && temp['name']){
															jobdata.push(temp);
														}
													}
												}else{
													if(_.isEqual(excelObj[0], job51)){
														for(var i=1;i<excelObj.length;i++){
															temp={};
															temp['name']=excelObj[i][0];
															// 应聘职位
															temp['job_objective']=excelObj[i][3];
															temp['sex']=excelObj[i][7]=="男"?1:0;
															// 工作经验
															temp['work_experience']=excelObj[i][11];
															// 电话号码
															temp['phone']=excelObj[i][15];
															// 邮箱
															temp['email']=excelObj[i][16];
															// 出生年月
															temp['birth_date']=excelObj[i][8];
															// 现居住地
															temp['current_address']=excelObj[i][9];
															// 最高学历
															temp['education']=excelObj[i][12];
															// 学校
															temp['school']=excelObj[i][13];
															// 期望薪资
															temp['expect_salary']=excelObj[i][22];
															// 专业
															temp['major']=excelObj[i][14];
															if(temp['name']!="" && temp['name']){
																jobdata.push(temp);
															}
														}
													}else{
														console.log("不规范简历文件");
														jobdata=false;
													}
												}
											}
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                // console.log(excelObj);
                res.json(jobdata);
            }
        });
    });
});
module.exports = router;
